<?php

class Ficha {

    public static function buscar($start, $limit, $brut=null, $banioi=null, $bnombre=null, $banion=null) {

        include "../functions/dbfunctions.php";

        $where = '';
        if (isset($brut) && $brut != '') {
            $where = $where . " AND UPPER(FA.RUT) LIKE '%" . $brut . "%' ";
        }
        if (isset($banioi) && $banioi != '' && $banioi != 'Todos') {
            $where = $where . " AND FAC.ANIO_INGRESO = " . $banioi;
        }
        if (isset($bnombre) && $bnombre != '') {
            $where = $where . " AND (UPPER(FA.NOMBRE) LIKE UPPER('%" . $bnombre . "%')
              OR UPPER(FA.AP_PATERNO) LIKE UPPER('%" . $bnombre . "%')
              OR UPPER(FA.AP_MATERNO) LIKE UPPER('%" . $bnombre . "%'))";
        }
        if (isset($banion) && $banion != '' && $banion != 'Todos') {
            $where = $where . " AND to_char(FA.FECHA_NACIMIENTO,'yyyy')=" . $banion;
        }

        $addstli = $start + $limit;
        $total = ret_array('
             SELECT
                            COUNT(*) AS TOTAL

                      FROM
                            FICHA_ALUMNO FA,
                            CARRERA CA,
                            FICHA_ALUMNO_HAS_CARRERA FAC,
                            ESTADO_ACADEMICO EA
                      WHERE
                            FA.ID_FICHA_ALUMNO = FAC.ID_FICHA_ALUMNO AND
                            FAC.ID_CARRERA = CA.ID_CARRERA AND
                            EA.ID_ESTADO = FA.ESTADO_ACADEMICO
                   ' . $where
        );
        $count = $total[0]['TOTAL'];


        $consulta = ret_array('

SELECT * FROM (
                      SELECT
                            FA.ID_FICHA_ALUMNO,
                            FA.RUT,
                            FA.NOMBRE,
                            FA.AP_PATERNO,
                            FA.AP_MATERNO,
                            FAC.ANIO_INGRESO,
                            FLOOR(MONTHS_BETWEEN(SYSDATE,FA.FECHA_NACIMIENTO)/12) AS EDAD,
                            CA.NOMBRE_CARRERA,
                            CA.ID_CARRERA,
                            EA.NOMBRE_ESTADO,
                            RANK() OVER (ORDER BY FA.RUT) AS RN

                      FROM
                            FICHA_ALUMNO FA,
                            CARRERA CA,
                            FICHA_ALUMNO_HAS_CARRERA FAC,
                            ESTADO_ACADEMICO EA
                      WHERE
                            FA.ID_FICHA_ALUMNO = FAC.ID_FICHA_ALUMNO AND
                            FAC.ID_CARRERA = CA.ID_CARRERA AND
                            EA.ID_ESTADO = FA.ESTADO_ACADEMICO
                   ' . $where . ' )
WHERE RN>' . $start . ' AND RN<=' . $addstli
        );

        $result[0] = $consulta;
        $result[1] = $count;
        return $result;
    }

    public static function obtener($id) {

        include "../functions/dbfunctions.php";

        $total = ret_array('
                      SELECT
                            *

                      FROM
                            FICHA_ALUMNO FA,
                            CARRERA CA,
                            FICHA_ALUMNO_HAS_CARRERA FAC,
                            ESTADO_ACADEMICO EA,
                            REGION_PROCEDENCIA RP
                      WHERE
                            FA.ID_FICHA_ALUMNO = FAC.ID_FICHA_ALUMNO AND
                            FAC.ID_CARRERA = CA.ID_CARRERA AND
                            EA.ID_ESTADO = FA.ESTADO_ACADEMICO AND
                            RP.ID_REGION = FA.REGION_PROCEDENCIA AND
                            FA.ID_FICHA_ALUMNO = ' . $id
        );
        return $total;
    }

    public static function listarR() {
        include "../functions/dbfunctions.php";

        $result = ret_array('
                      SELECT
                            *

                      FROM
                            REGION_PROCEDENCIA'
        );
        return $result;
    }

    public static function listarC($id_ficha) {
        include "../functions/dbfunctions.php";
        if ($id_ficha == null) {
            $result = ret_array('
                      SELECT
                            C.ID_CARRERA,
                            C.NOMBRE_CARRERA

                      FROM
                            CARRERA C,
                            FICHA_ALUMNO_HAS_CARRERA FHC

                      WHERE
                            FHC.ID_CARRERA = C.ID_CARRERA AND
                            FHC.ID_FICHA_ALUMNO = ' . $id_ficha
            );
        } else {
            $result = ret_array('
                      SELECT
                            *
                      FROM
                            CARRERA'
            );
        }

        return $result;
    }

    public static function obtenerDA($id_ficha, $id_carrera) {
        include "../functions/dbfunctions.php";

        $result = ret_array('
                      SELECT
                            FHC.ANIO_INGRESO,
                            FHC.PROMEDIO_ACUMULADO,
                            FA.NEM,


                      FROM
                            CARRERA C,
                            FICHA_ALUMNO_HAS_CARRERA FHC,
                            FICHA_ALUMNO FA
                      WHERE
                            FHC.ID_CARRERA = C.ID_CARRERA AND
                            FHC.ID_FICHA_ALUMNO = ' . $id_ficha
        );
        return $result;
    }

    public static function guardarGeneral($arr_ficha) {
        include "../functions/dbfunctions.php";
        // se nos escapó estado académico
        $generos = array("MASCULINO", "FEMENINO");

// $$$$   $$$$$  $$$$$   $$$$$$$$ $$    $$ $$$$$$$$
//  $$   $$    $$    $$  $$    $$ $$    $$ $$    $$
//  $$   $$          $$  $$    $$ $$    $$ $$    $$
//  $$    $$        $$   $$$$$$$$ $$$$$$$$ $$$$$$$$
//  $$      $$    $$     $$       $$    $$ $$
//  $$       $$  $$      $$       $$    $$ $$
// $$$$        $$        $$       $$    $$ $$
        if ($arr_ficha['idFicha'] != null) {
            $consulta = '
            UPDATE
                FICHA_ALUMNO
            SET
                NOMBRE = ' . "'" . utf8_decode($arr_ficha['pNombres']) . "'" .
                    ',AP_PATERNO = ' . "'" . utf8_decode($arr_ficha['pAMaterno']) . "'" .
                    ',AP_MATERNO = ' . "'" . utf8_decode($arr_ficha['pAPaterno']) . "'" .
                    ',DIRECCION = ' . "'" . utf8_decode($arr_ficha['pDireccion']) . "'" .
                    ',FECHA_NACIMIENTO = TO_DATE(\'' . $arr_ficha['pFechaN'] . '\',\'DD/MM/YYYY\')' .
                    ',SEXO = ' . $arr_ficha['idGen'] .
                    ',REGION_PROCEDENCIA = ' . $arr_ficha['idRegion'] .
                    ',OBSERVACIONES = ' . "'" . utf8_decode($arr_ficha['pObservaciones']) . "'" .
                    ' WHERE
                    ID_FICHA_ALUMNO =' . $arr_ficha['idFicha'];
        echo $consulta;
        } else {
            $consulta = '
            INSERT INTO
                FICHA_ALUMNO (RUT,NOMBRE,AP_PATERNO,AP_MATERNO,DIRECCION,FECHA_NACIMIENTO,SEXO,REGION_PROCEDENCIA,OBSERVACIONES)
            VALUES (' . "'" . $arr_ficha['pRut'] . "'" . ',
                ' . "'" . utf8_decode($arr_ficha['pNombres']) . "'" .
                    ',' . "'" . utf8_decode($arr_ficha['pAMaterno']) . "'" .
                    ', ' . "'" . utf8_decode($arr_ficha['pAPaterno']) . "'" .
                    ', ' . "'" . utf8_decode($arr_ficha['pDireccion']) . "'" .
                    ', TO_DATE(\'' . $arr_ficha['pFechaN'] . '\',\'DD/MM/YYYY\')' .
                    ', ' . $arr_ficha['idGen'] .
                    ', ' . $arr_ficha['idRegion'] .
                    ', ' . "'" . utf8_decode($arr_ficha['pObservaciones']) . "'" .
                    ')';
        }

        $result = parse($consulta);
    }

    public static function guardarAcademico($arr_ficha) {

    }

    public static function procesarRut($rut) {
        return preg_replace('\s', '', preg_replace('\.', '', $rut));
    }

    private static function consultaTest($tipoTest) {
        $consulta = "SELECT * FROM
                        (SELECT C.NOMBRE_AREA, N.NOMBRE_NIVEL, TT.N_FOLIO
                         FROM
                             AREA_CONOCIMIENTO C,
                             NIVEL N,
                             TOMA_TEST TT,
                             TIPO_TEST TIT
                         WHERE
                             TT.ALUMNO = :id AND
                             UPPER(TIT.NOMBRE_TIPO) = '" . strtoupper($tipoTest) . "' AND
                             TT.TIPO_TEST = TIT.ID_TIPO_TEST AND
                             TT.NIVEL = N.ID_NIVEL AND
                             TT.AREA_CONOCIMIENTO = C.ID_AREA)
                     WHERE
                         N_FOLIO IN (SELECT MAX(ITT.N_FOLIO)
                                        FROM
                                            TOMA_TEST ITT,
                                            TIPO_TEST ITIT
                                        WHERE
                                            ITT.ALUMNO = :id AND
                                            UPPER(ITIT.NOMBRE_TIPO) = '" . strtoupper($tipoTest) . "' AND
                                            ITT.TIPO_TEST = ITIT.ID_TIPO_TEST)";
        return $consulta;
    }

    private static function obtenerIdBDTests($idLocal) {
        include "../functions/dbfunctions.php";

        $getRut = "SELECT RUT
                   FROM
                        FICHA_ALUMNO FA
                   WHERE
                        FA.ID_FICHA_ALUMNO = :id";
        $tmp = real_ret_arrayi($getRut, array(":id" => $idLocal));

        $rut = $tmp[0]["RUT"];

        $getIdBdTests = "SELECT ID_FICHA_ALUMNO
                         FROM
                            FICHA_ALUMNO FA
                         WHERE
                            FA.RUT = :rut";

        $tmp = real_ret_arrayi($getIdBdTests, array(":rut" => $rut) /*, "FichasBD" */);

        $idExt = $tmp[0]["ID_FICHA_ALUMNO"];
        return $idExt;
    }
    
    public static function cargarSchmeck($id) {
        
        $consulta = Ficha::consultaTest("schmeck");
        $idExt = Ficha::obtenerIdBDTests($id);

        $conj = real_ret_arrayi($consulta, array(":id" => $idExt));

        $belleza = array();
        foreach ($conj as $f) {
            switch (utf8_encode($f["NOMBRE_AREA"])) {
                case "procesamiento elaborativo":
                    $belleza['Elaborativo'] = $f["NOMBRE_NIVEL"];
                    break;
                case "estudio metódico":
                case "estudio metodico":
                    $belleza['Metodico'] = $f["NOMBRE_NIVEL"];
                    break;
                case "procesamiento profundo":
                    $belleza['Profundo'] = $f["NOMBRE_NIVEL"];
                    break;
                case "procesamiento hechos":
                    $belleza['Superficial'] = $f["NOMBRE_NIVEL"];
                    break;
            }
        }
        return $belleza;
    }

    public static function cargarCoopersmith($id) {
        
        $consulta = Ficha::consultaTest("coopersmith");
        $idExt = Ficha::obtenerIdBDTests($id);

        $conj = real_ret_arrayi($consulta, array(":id" => $idExt));

        $belleza = array();
        foreach ($conj as $f) {
            switch (utf8_encode($f["NOMBRE_AREA"])) {
                case "mentira":
                    $belleza['Mentira'] = $f["NOMBRE_NIVEL"];
                    break;
                case "autoestima escolar-academica":
                    $belleza['Academico'] = $f["NOMBRE_NIVEL"];
                    break;
                case "autoestima general":
                    $belleza['General'] = $f["NOMBRE_NIVEL"];
                    break;
                case "autoestima familiar":
                    $belleza['Familiar'] = $f["NOMBRE_NIVEL"];
                    break;
                case "autoestima total":
                    $belleza['Total'] = $f["NOMBRE_NIVEL"];
                    break;
                case "autoestima social":
                    $belleza['Social'] = $f["NOMBRE_NIVEL"];
                    break;
            }
        }


        return $belleza;
    }

    public static function guardarMasivo($arr_ficha) {
        
        // se nos escapó estado académico
        $generos = array("MASCULINO", "FEMENINO");
        echo "arranca <br>";
        $arr_ficha['id']=Ficha::obtenerIdPorRut($arr_ficha['pRut']);
        if ($arr_ficha['id'] != null) {
           echo "arranca update<br>";
            $consulta = '
            UPDATE
                FICHA_ALUMNO
            SET
                    DIRECCION = ' . "'" . utf8_decode($arr_ficha['pDireccion']) . "'" .
                    ',REGION_PROCEDENCIA = ' . $arr_ficha['idRegion'] .
					',CORREO = ' . utf8_decode($arr_ficha['pCorreo']) .
            		',TELEFONO = ' . utf8_decode($arr_ficha['pTelefono']) .
            		',DIRECCION = ' . utf8_decode($arr_ficha['pDireccion']) .
            		',ESTADO_ACADEMICO = ' . $arr_ficha['idEstadoAc'] .
            		' WHERE
                    ID_FICHA_ALUMNO =' . $arr_ficha['id'];
//        echo $consulta;
        } else {
            echo "arranca insert<br>";
            $consulta = '
            INSERT INTO
                FICHA_ALUMNO(
					rut,
					nombre,
					ap_paterno,
					ap_materno,
					correo,
					telefono,
  					direccion,
					fecha_nacimiento,
					sexo,
					nem,
					region_procedencia,
					tipo_establecimiento,
					modalidad_educacional,
					estado_academico,
					electivo,
                                        anio_egreso_ens_media,
                                        ptaje_nem
				)
            VALUES (' . "'" . $arr_ficha['pRut'] . "'" . ',
                ' . "'" . utf8_decode($arr_ficha['pNombres']) . "'" .
                    ',' . "'" . utf8_decode($arr_ficha['pAMaterno']) . "'" .
                    ', ' . "'" . utf8_decode($arr_ficha['pAPaterno']) . "'" .
            		', ' . "'" . utf8_decode($arr_ficha['pCorreo']) . "'" .
            		', ' . "'" . utf8_decode($arr_ficha['pTelefono']) . "'" .
                    ', ' . "'" . utf8_decode($arr_ficha['pDireccion']) . "'" .
                    ', TO_DATE(\'' . $arr_ficha['pFechaN'] . '\',\'DD/MM/YYYY\')' .
                    ', ' . $arr_ficha['idGen'] .
            		', ' . $arr_ficha['aNem'] .
                    ', ' . $arr_ficha['idRegion'] .
            		', ' . $arr_ficha['idTipoEst'] .
            		', ' . $arr_ficha['idModalidadEd'] .
            		', ' . $arr_ficha['idEstadoAc'] .
            		', ' . $arr_ficha['idElectivo'] .
                        ', ' . $arr_ficha['aEgresoMedia'] .
                        ', ' . $arr_ficha['ptjeNem'] .
                    ')';
        }
               
        echo "fint<br>";

        $result = parse($consulta);

        $consulta2 = "
            INSERT INTO
                FICHA_ALUMNO_HAS_CARRERA(
                    ID_CARRERA,
                    ID_FICHA_ALUMNO,
                    ANIO_INGRESO,
                    PREFERENCIA_INGRESO,
                    MODALIDAD_INGRESO,
                    PTJE_PONDERADO
                )
            VALUES (
                " . $arr_ficha['idCarrera'] .
            	", " . $arr_ficha['id'] .
            	", " . $arr_ficha['aIngreso'] .
            	", " . $arr_ficha['prefIngreso'] .
                ", '". $arr_ficha['modIngreso'] .
               " ', " . $arr_ficha['ptjePonderado'] .
            ")";
        //echo "consulta2 ".$consulta2."<br>";
        parse($consulta2);
    }

    public static function obtenerIdPorRut($rut){
		$getIdBdTests = "SELECT ID_FICHA_ALUMNO
                             FROM
                                FICHA_ALUMNO FA
                             WHERE
                                FA.RUT like '%".$rut."%'";

            $tmp = real_ret_arrayi($getIdBdTests, array(":rut" => $rut) /*, "FichasBD" */);

            $idExt = $tmp[0]["ID_FICHA_ALUMNO"];
        return $idExt;
        
        }
}

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 *                 ',TIPO_ESTABLECIMIENTO = '.$arr_ficha['nId'].
 * //                ',ESTADO_ACADEMICO = '.$arr_ficha[''].
  //                ',PASSWORD = '.
  ',NEM = '.$arr_ficha['aNem'].
  //                ',PTAJE_NEM = '.
  ',PTAJE_PRUEBA = '.$arr_ficha['ptPrueba'].
  //               ',PTAJE_PONDERADO = '.$arr_ficha[''].
  //                'ANIO_EGRESO_ENS_MEDIA = '.$arr_ficha.

 */
?>
